データ指向アプリケーションデザイン ―― 信頼性、拡張性、保守性の高い分散システム設計の原理